package com.nine.pattern.singleton.demo4;

import java.io.Serializable;

/**
 * @author nine
 * @version 1.0
 * @description 饿汉式，静态成员变量
 * @date 2024-06-25 23:38
 */
public class Singleton implements Serializable {

	private static boolean flag = false;

	// 1. 私有构造方法
	private Singleton() {
		if (flag) {
			throw new RuntimeException("单例构造器禁止反射调用");
		}
		flag = true;
	}

	// 2. 本类中创建本类对象
	private static Singleton instance = new Singleton();

	// 3. 提供一个公共的静态方法，返回实例对象
	public static Singleton getInstance() {
		return instance;
	}

	// 防止反序列化破坏单例
	public Object readResolve() {
		return instance;
	}

}
